#ifndef __CLIENTFUNC_H__
#define __CLIENTFUNC_H__

#include <stdbool.h>
#include "../GlobalMessage.h"

// 登陆界面
int LoginFace();

// 功能选择界面
int Interface();

// 注册
MSG SignUp(char * MyName);

// 是否注册成功
bool IsSignUpSuccess(MSG *m);

// 登录
MSG Login(char * MyName);

// 是否登录成功
bool IsLoginSuccess(MSG *m);

// 私聊的逻辑
MSG ChatToClient();

// 广播
MSG ChatBroadCast();

// 查看在线用户
MSG GetServerOnlineList();

// 解析用户列表字符串
void ShowOnlineList(MSG * m);

// 文件分包发送
// 第一个参数为文件路径
MSG SendFile();

// 获取文件名称：字符串切割
char* GetFileNameFromPath(const char * filePath);

// 写数据到本地文件
void WriteToLocal(MSG *m);


// 网盘界面
int CloudInitface();

// 上传文件
MSG UploadFile();

// 显示文件列表
void ShowFileList(MSG *m);

// 分包的结构体
struct PacketFile;
typedef struct PacketFile PacketFile;

PacketFile * PacketFileInit(const char *FilePath);

// 从文件中拿数据
void ReadFromFile(PacketFile *f, void *p, int *size);// 为什么要传一个int *指针，因为我就可以读到实际传过来的字节

bool IsFileEnd(PacketFile *f);

void ClearPacketFile(PacketFile *f);

#endif